python tutor
Building Tools to Help Students Learn to Program
My current research trajectory centers on what I call learning programming at scale. Decades of prior research have worked to improve how computer programming is taught in traditional K–12 and university classrooms, but the vast majority of people around the world--children in low-income areas, working adults with full-time jobs, the fast-growing population of older adults, and millions in developing countries--do not have access to high-quality classroom learning environments. Thus, the central question that drives my research is: How can we better understand the millions of people from diverse backgrounds who are now learning programming online and then design scalable software to support their learning goals? One critical prerequisite for improving how programming is taught is to understand why and how people are currently learning and what obstacles they face. To work toward this goal, I have been studying traditionally under-represented learner populations and non-traditional learning environments.
Philip Guo - Python Tutor: The First Three Years
For the past six years, I've been developing Python Tutor (pythontutor.com), Thousands of people use it every day to run tens of thousands of pieces of code in seven languages: Python, Java, JavaScript, TypeScript, Ruby, C, and C . This tool has also become a platform for HCI, educational technology, and computing education research. Most recently, it formed the basis for my faculty job applications that got me a job at UC San Diego. How did this project grow from nothing to its current state? I've been wanting to write a "history of Python Tutor" article for a while now but never found a good time to do so.